package com.zuoban.log;

import com.zuoban.entity.sys.SysLog;

import javax.servlet.http.HttpServletRequest;

/**
 * @BelongsProject: zuoban-boot
 * @BelongsPackage: com.zuoban.log
 * @Author: zxy
 * @CreateTime: 2022-10-10
 * @Description: ...
 */
public interface Subject {

    /**
     * 添加一个观察者
     */
    void addObserver(Observer observer);

    /**
     * 删除一个观察者
     */
    void delObserver(Observer observer);

    /**
     * 通知具体的观察者
     */
    void notifyObserver(HttpServletRequest request, Observer observer, SysLog sysLog);

    /**
     * 通知全部观察者
     */
    default void notifyAllObserver(){};
}
